/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Pesistencia;

import BancoDados.BancoDados;
import Entidade.ClienteModel;
import Entidade.EnderecoModel;
import java.sql.ResultSet;
import java.util.ArrayList;

/**
 *
 * @author Thalyta
 */
public class ClientePersistenicia {
    
    
       BancoDados bd;
       private BancoDados banco = new BancoDados();
       EnderencoPersistencia endrecos ;

    public ClientePersistenicia(EnderencoPersistencia endrecos) {
        bd = new BancoDados();
        this.endrecos = endrecos;
    }
          
  public ArrayList<ClienteModel> getListaProdutos() {
      
      
        try {
            ResultSet rs = bd
                    .consultar("SELECT * FROM cliente");
            ArrayList<ClienteModel> retorno = new ArrayList<>();
            while(rs.next()){
                
                
                 ClienteModel p = new ClienteModel(rs.getInt("codCliente"), rs.getString("Nome"),rs.getString("sexo"),rs.getInt("codEndereco"),rs.getString("dataNascimento"),rs.getString("cpf"));
                        
                 retorno.add(p);
            }
            return retorno;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public ClientePersistenicia(BancoDados bd) {
        this.bd = bd;
    }

    public void cadastrar( ClienteModel cliente) {
        try {
            bd.atualizar("INSERT INTO cliente (codCliente,Nome,sexo,codEndereco,dataNascimento,cpf) VALUES ("+cliente.getCodigo()+" ,'"+cliente.getNome()+"' ,'"+cliente.getSexo()+"' ,'"+cliente.getEndereco()+"','"+cliente.getDataNascimento()+"','"+cliente.getCpf()+"')");

            System.out.println("INSERT INTO cliente (codCliente,Nome,sexo,codEndereco,dataNascimento,cpf) VALUES ("+cliente.getCodigo()+" ,'"+cliente.getNome()+"' ,'"+cliente.getSexo()+"' ,'"+cliente.getEndereco()+"','"+cliente.getDataNascimento()+"','"+cliente.getCpf()+"')");
        } catch (Exception e) {
            e.printStackTrace();
        }
        
    }

    public  ClienteModel buscar(int codigo) {
        try {
            ResultSet rs = bd.consultar("SELECT * FROM cliente WHERE codCliente = "+codigo);
            rs.next();
             ClienteModel retorno;
            if(rs.getRow() == 0){
                retorno = null;
            } else {
                retorno = new ClienteModel(rs.getInt("codCliente"), rs.getString("Nome"),rs.getString("sexo"),rs.getInt("codEndereco"),rs.getString("dataNascimento"),rs.getString("cpf"));
            }
            return retorno;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }   

    public int recuperarUltimoCodigo() {
        try {
            ResultSet rs = bd.consultar("SELECT MAX(codCliente) FROM cliente");
            rs.next();
            int retorno;
            if(rs.getRow() == 0){
                retorno = 0;
            } else {
                retorno = rs.getInt("MAX(codCliente)");
            }
            return retorno;
        } catch (Exception e) {
            e.printStackTrace();
            return -1;
        }
    }

    public void excluir(ClienteModel cliente) {
        try {
            bd.atualizar("DELETE FROM cliente WHERE (codCliente = "+cliente.getCodigo()+")");

            System.out.println("DELETE FROM cliente WHERE (codCliente = "+cliente.getCodigo()+")");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
     public void editar(ClienteModel cliente) {
        try {
            
            
            bd.atualizar("UPDATE cliente SET nome = "+"'"+ cliente.getNome() +"'"+", datanascimento = "+"'"+cliente.getDataNascimento()+"'"+ ", cpf = "+cliente.getCpf()+",Codendereco ="+ cliente.getEndereco()+",sexo = "+"'"+cliente.getSexo()+"'"+ " WHERE (codCliente = "+cliente.getCodigo()+")");

            System.out.println("UPDATE cliente SET nome = " + cliente.getNome() + " datanascimento = "+cliente.getDataNascimento()+ " cpf = "+cliente.getCpf()+"endereco ="+ cliente.getEndereco()+"sexo = "+cliente.getSexo()+ " WHERE (codCliente = "+cliente.getCodigo()+")");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
      
     
}
